package cn.wolfcode.service;


import cn.wolfcode.domain.OrderInfo;
import io.seata.rm.tcc.api.LocalTCC;

/**
 * Created by wolfcode-lanxw
 */
public interface IOrderInfoService {

    /**
     * 根据 秒杀id, 秒杀场次 创建订单
     * @param seckillId 秒杀商品id
     * @param time  场次
     * @return 订单id
     */
    String doSeckill(Long seckillId, int time, Long phone);

    /**
     * 根据订单编号查询订单
     * @param orderNo
     * @return
     */
    OrderInfo findByOderNo(String orderNo);

    /**
     * 修改超时订单的状态
     * @param orderNo
     * @param statusTimeout
     */
    void updateCancelStatus(String orderNo, Integer statusTimeout);


    /**
     * 根据订单编号进行支付操作
     * @param orderNo   订单编号
     * @return  返回支付的result 表单数据json格式
     */
    String payOnline(String orderNo);

    /**
     * 修改订单状态
     * @param orderNo
     * @param status
     * @param paytype
     */
    void changePayStatus(String orderNo, Integer status, Integer paytype);

    /**
     * 订单支付成功
     * @param orderNo
     */
    void paySuccess(String orderNo);

    /**
     * 修改订单状态为未付款状态
     * @param orderNo
     * @param statusRefund
     */
    void refundStatus(String orderNo, Integer statusRefund);

    /**
     * 积分退款
     * @param orderNo
     */
    void refundIntergral(String orderNo);

    /**
     * 支付寶退款
     * @param orderNo
     */
    void refundOnline(String orderNo);

    /**
     * 积分支付
     * @param orderNo
     * @return
     */
    String payOnIntergral(String orderNo);

}
